今日學習內容
了解實作Flutter程式碼的規則
使用了Container,Column,Scaffold,MaterialApp等等的物件。
在app介面上可以佈局顏色、文字。
首先是簡單寫文字和顏色上去,成功實作後,再來了解物件的使用規則。
程式碼如下:
import 'package:flutter/material.dart';
void main() {
  runApp(build());
}
Widget build(){
  return MaterialApp(
    home:Scaffold(
      body:Container(
        color:Colors.amber,
        child:Column(
          children:const[
            Text("aaaaaaaaaaaaa"),
            Text("aaaaaaaa"),
            Text("aaaaaaaa"),
            Text("aaaaaaaa"),
            Text("aaaaaaaa"),
          ],
        ),
      ),
    ),
  );
}
Scaffold是整個螢幕的物件,Container裏頭再包含Column,Column是從上往下布局文字的物件。
輸出結果如下:
另外,也可以設置最大最小值範圍,限制物件的大小,使用ConstrainedBox。
程式碼如下:
import 'package:flutter/material.dart';
void main() {
  runApp(build1());
}
Widget build1(){
  return MaterialApp(
    home: Scaffold(
      body:Center(
        child: ConstrainedBox(
          constraints: BoxConstraints(
            minWidth:100,
            minHeight:100,
            maxWidth: 200,
            maxHeight:200,
          ),
          child: Container(
            width: 50,
            height: 50,
            color: Colors.amber,
          ),
        ),
      ),
    ),
  );
}
即使我再圖塊設置50寬50高,但因最小值的100約束,導致圖塊是呈現100寬100高的,達到限制的效果。
接下來是不受到約束的程式-UnconstrainedBox,顧名思義就是我們可以實現上述的圖塊50寬50高的設定,達到解脫最小值100約束的效果。
程式碼如下:
import 'package:flutter/material.dart';
void main() {
  runApp(build1());
}
Widget build1(){
  return MaterialApp(
    home: Scaffold(
      body:Center(
        child:ConstrainedBox(
          constraints: BoxConstraints(
            maxWidth: 200,
          ),
          child:UnconstrainedBox(
            child: Container(
              width: 50,
              height: 50,
              color: Colors.amber,
            ),
          ),
        ),
      ),
    ),
  );
}
就再新增UnconstrainedBox而已。
今日總結
今天我學習了父元素來控制子元素圖塊的方法,有使用ConstrainedBox以及UnconstrainedBox的語法,還有學習基本的設計界面使用的語法Column,Scaffold等等的使用,目前我還不熟悉使用,但相信接下的幾天下來,就可以熟悉並習慣使用。